1. Field of Invention
The present invention relates generally to the field of troubleshooting consumer electronics devices. More particularly, in one exemplary aspect, the present invention is directed to methods and apparatus adapted to diagnose encapsulated component device issues in situ, caused by a wide variety of unpredictable variables such as device specific layouts, usage environments, and user configurations.
2. Description of Related Technology
Next generation computerized devices focus on offering consumers a substantially unified solution for a variety of services to which consumers have become accustomed. Examples of such converged solutions include the exemplary “MacBook Air” laptop computer, and iPhone™ each manufactured by the Assignee hereof. For instance, the iPhone™ has the capability of, among other things, sending and receiving email over a wireless LAN (WLAN) network, making and receiving calls using a GSM or 3G cellular network, and operating wireless peripheral equipment (such as wireless headsets) using the Bluetooth (BT) protocol. These devices are also ideally made as small and lightweight as possible so that users may carry them on their person, briefcase, or the like with ease, thereby even further enhancing the user's experience and freedom.
Unlike application-specific consumer products having relatively singular functionality (e.g., a simple mobile phone, laptop, Personal Digital Assistant (PDA), etc.), next generation convergence products are typically not optimized for any single element or function. Instead, such convergence products incorporate a wide variety of “black boxed” third party solutions which were in many cases not particularly developed for use in the convergence device. When these ad hoc components are assembled or combined with other similar components into a host convergence product, the performance of these components (and even the device as a whole) is in many cases significantly worse than advertised by the original manufacturers. This stems in large part from the fact that the individual components were designed for and tested in a generalized (non-converged) environment.
Moreover, in some cases, performance degradation severely hampers operation of one or more aspects of the host device in completely unexpected or unpredictable ways. This type of effect can be particularly acute in platforms that integrate multiple wireless air interfaces (e.g., cellular, WLAN, and PAN such as Bluetooth).
Many third party components are substantially “encapsulated” (e.g., have a fixed or impermeable nature, and/or may be substantially immutable in terms of various aspects or their operation or physical properties). Characteristically, such encapsulated solutions contain proprietary material which is in whole (or in part) hidden from system integrators, such as the manufacturer of the converged host device. While some third party manufacturers may provide limited test access into the encapsulated module, comprehensive source code (e.g., application code, Register Transfer Language (RTL)) is generally not provided. Rather, these components are typically tested in isolation within a highly controlled laboratory environment under predetermined environmental conditions.
Furthermore, there are some instances where internally developed designs (i.e., those developed by the converged device manufacturer or integrator) are likewise substantially fixed or immutable. For instance, “encapsulation” may occur when portions of past designs are reused to save on development time and or redesign. In many cases, while the reused section is not hidden or inaccessible per se, the system integration engineers of the module cannot alter source code or RTL. They must instead “make do” with the module as an aggregate whole.
In other another common development paradigm, multiple product lines may derive portions of their design from a single database. In this case, a change to the encapsulated module would affect other design teams and would be in most cases prohibited.
Therefore, while such encapsulated components offload much of the design burden from the engineering staff of the converged device manufacturer or integrator, it is appreciated that the lack of visibility into the internal workings of such black box component may mask a plethora of development issues or “bugs”. Common development bugs may be caused for example by a wide variety of unpredictable variables (such as e.g., specific converged device layouts, other component present within the design, usage environments, and user configuration), but are at least initially assumed to be an artifact of the interface or co-existence between the encapsulated component and its environment.
Extant techniques for evaluating and diagnosing problems associated with such third party encapsulated devices when actually installed within the host converged device are also quite unwieldy. Many of these traditional approaches are based on a trial-and-error approach and utilize significant amounts of specialized test equipment and engineering time, and also cannot generally be performed in situ (“in the field, or in the device”), but rather only in specialized laboratory or manufacturer settings. For instance, existing approaches to debugging such issues might include: (i) switching integrated circuits (e.g., Bluetooth transceivers or servers) so that all such ICs are from the same vendor, thereby ostensibly increasing compatibility; (ii) using high-end test equipment such as network analyzers, oscilloscopes, spectrum analyzers, packet tracers, etc. to test component or device performance; (iii) adding ancillary test or diagnosis hardware or the like (e.g., adding a test pin in a Bluetooth antenna connector to measure the return loss (S11) parameter using a network analyzer); and/or (iv) measuring antenna pattern(s) in anechoic chamber.
Based on the foregoing, improved methods and apparatus are needed for diagnosing such “encapsulated” component device issues in situ. Such methods and apparatus would ideally provide troubleshooting capabilities suited to debug or evaluate the operation of potentially problematic components within the host platform, as well as the aggregated or converged host in a more holistic manner.
Such improved methods and apparatus might also serve to improve overall engineering efficiency by providing greater visibility within encapsulated components, and improve deployment and maintenance efficiency.
Lastly, the improved methods and apparatus should be flexible in its implementation, and ideally capable of interoperation with multiple converged device types.